import pygame
from pygame.locals import *
import os

class Snake():
	
	def __init__(self):
		self.cabeca = Cabeca()#CHAMA A CLASSE CABECA
		self.corpo = []#DEFINE O CORPO COMO UMA LISTA
	
	#ADICIONA PARTES AO CORPO	
	def adiciona_corpo(self):
		c = Corpo()
		c.x = -1111
		c.y = -1111
		self.corpo.append(c)
	
	#MOVE O CORPO DA SNAKE	
	def mover(self):
		for i in range(len(self.corpo)-1, 0, -1):
			self.corpo[i].x = self.corpo[i-1].x
			self.corpo[i].y = self.corpo[i-1].y
			
		if len(self.corpo) > 0:
			self.corpo[0].x = self.cabeca.x
			self.corpo[0].y = self.cabeca.y
			
		self.cabeca.mover()
		
	#BLITA O CORPO E A CABECA
	def blita(self, screen):
		screen.blit(self.cabeca.image, (self.cabeca.x, self.cabeca.y))
		for parte_corpo in self.corpo:
			screen.blit(parte_corpo.image, (parte_corpo.x, parte_corpo.y))
	
	#TESTA COLISAO DO CORPO		
	def colisao_corpo(self):
		for pedaco in self.corpo:
			if(self.cabeca.colliderect(pedaco)):
				return True
		
		return False
		
class Cabeca(Rect):
	
	#DA AS COODENADAS DA CABECA E CARREGA SUA IMAGEM
	def __init__(self):
		self.direcao = (1, 0)
		self.x = 100
		self. y = 100
		self.image = pygame.image.load('cobra.png').convert_alpha()
		self.width = self.image.get_rect()[2]
		self.height = self.image.get_rect()[3]

	#ORIENTA O MOVIMENTO DA CABECA
	def mover(self):
		if self.direcao[1] == 0:
			self.x += self.direcao[0]*self.width
			
		else:
			self.y += self.direcao[1]*self.height
			
			
	def muda_direcao(self, nova_direcao):
		self.direcao = nova_direcao
			
			
class Corpo(Rect):

	#CARREGA O CORPO E DA SUA COORDENADAS
	def __init__(self):
		self.x = 0
		self. y = 0
		self.image = pygame.image.load('cobra.png').convert_alpha()
		self.width = self.image.get_rect()[2]
		self.height = self.image.get_rect()[3]
	
class Drink(Rect):

	#CARREGA O DRINK E DA SUAS COORDENADAS
	def __init__(self):
		self.x = 0
		self.y = 0
		self.image = pygame.image.load("drink.png").convert_alpha()
		self.width = self.image.get_rect()[2]
		self.height = self.image.get_rect()[3]
